// lodash 中的 curry 基本使用
// 让任意的函数变成柯里化函数
const _ = require('lodash');

function getSum(a, b, c) {
  return a + b + c;
}

const curried = _.curry(getSum);

// getSum 接收3个参数
// 柯里化之后
// 可以先接收 n(任意) 个参数，返回的函数再去接收 3-n(剩余) 个参数，返回的函数会一直等待接收剩余参数
// 接收参数的总数没有变化

console.log(curried(1, 2, 3));
console.log(curried(1)(2, 3));
console.log(curried(1, 2)(3));
console.log(curried(1)(2)(3));
// 其实实现就是在返回的函数内将之前传入的参数和返回函数的参数合并一下丢回给原函数
